// import 'dart:io';
// import 'package:extended_image/extended_image.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter_screenutil/flutter_screenutil.dart';
//
// import '../../data/media_asset_data_entity.dart';
// import '../../utils/image_compress.dart';
// import '../vide_player/custom_control_video_player.dart';
//
//
// class MediaViewer extends StatefulWidget {
//   final Map arguments;
//   const MediaViewer({
//     Key? key,
//     required this.arguments,
//   }) : super(key: key);
//   @override
//   _MediaViewerState createState() {
//     // TODO: implement createState
//     return _MediaViewerState();
//   }
// }
//
// class _MediaViewerState extends State<MediaViewer>
//     with SingleTickerProviderStateMixin {
//   late PageController pageController;
//   late List<MediaAssetDataEntity> assets;
//   int currentIndex = 0;
//   @override
//   void initState() {
//     super.initState();
//     assets = widget.arguments['assets'] ?? [];
//     currentIndex = widget.arguments['currentIndex'] ?? 0;
//     pageController = PageController(
//         initialPage: currentIndex, keepPage: false, viewportFraction: 1.0);
//   }
//
//   @override
//   void dispose() {
//     super.dispose();
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       resizeToAvoidBottomInset: true,
//       body: Center(
//         child: Container(
//           color: Colors.black,
//           child: Stack(
//             children: [
//               PageView(
//                 scrollDirection: Axis.horizontal,
//                 reverse: false,
//                 controller: pageController,
//                 physics: BouncingScrollPhysics(),
//                 pageSnapping: true,
//                 onPageChanged: (index) {
//                   currentIndex = index;
//                   setState(() {});
//                 },
//                 children: items(),
//               ),
//               Positioned(
//                   left: 20.w,
//                   top: ScreenUtil().statusBarHeight + 20.w,
//                   child: Row(children: [
//                     GestureDetector(
//                       onTap: () {
//                         Navigator.of(context).pop();
//                       },
//                       child: Container(
//                         height: 80.w,
//                         decoration: BoxDecoration(
//                             borderRadius: BorderRadius.circular(100.w)),
//                         child: const Icon(
//                           Icons.arrow_back_ios,
//                           color: Colors.white,
//                         ),
//                       ),
//                     ),
//                   ])),
//             ],
//           ),
//         ),
//       ),
//     );
//   }
//
//   List<Widget> items() {
//     List<Widget> arr = [];
//     assets.forEach((asset) {
//       if (asset.type == 1) {
//         arr.add(imgWidget(asset));
//       } else {
//         arr.add(videoWidget(asset));
//       }
//     });
//     return arr;
//   }
//
//   Widget imgWidget(MediaAssetDataEntity asset) {
//     return SingleChildScrollView(
//       child: Column(
//         mainAxisAlignment: MainAxisAlignment.center,
//         children: [
//           Container(
//               constraints: BoxConstraints(maxHeight: 10.sh, minHeight: 1.sh),
//               child: asset.uri!.startsWith('http')
//                   ? ExtendedImage.network(
//                       ImageCompress.reGenerateImageUrl(asset.uri!),
//                       mode: ExtendedImageMode.gesture,
//                       // initGestureConfigHandler: (state){
//                       //   return GestureConfig(
//                       //     minScale: 0.9,
//                       //     animationMinScale: 0.7,
//                       //     maxScale: 3.0,
//                       //     animationMaxScale: 3.5,
//                       //     speed: 1.0,
//                       //     inertialSpeed: 100.0,
//                       //     initialScale: 1.0,
//                       //     inPageView: true,
//                       //     initialAlignment: InitialAlignment.center,
//                       //   );
//                       // },
//                     )
//                   : ExtendedImage.file(
//                       File(asset.uri!),
//                       mode: ExtendedImageMode.gesture,
//                       // initGestureConfigHandler: (state){
//                       //   return GestureConfig(
//                       //     minScale: 0.9,
//                       //     animationMinScale: 0.7,
//                       //     maxScale: 3.0,
//                       //     animationMaxScale: 3.5,
//                       //     speed: 1.0,
//                       //     inertialSpeed: 100.0,
//                       //     initialScale: 1.0,
//                       //     inPageView: true,
//                       //     initialAlignment: InitialAlignment.center,
//                       //   );
//                       // },
//                     ))
//         ],
//       ),
//     );
//   }
//
//   Widget videoWidget(MediaAssetDataEntity asset) {
//     return Container(
//         alignment: Alignment.center,
//         // margin: EdgeInsets.only(top: ScreenUtil().statusBarHeight + 20.w),
//         child: Container(
//           width: 1.sw,
//           height: 1.sh, //1.sw*9/16,
//           color: Colors.black,
//           child: CustomMediaVideoPlayer(
//             entity: asset,
//           ),
//         )
//     );
//   }
//
//   List<Widget> dots() {
//     List<Widget> arr = [];
//     for (int i = 0; i < assets.length; i++) {
//       arr.add(dotItem(currentIndex == i));
//     }
//     return arr;
//   }
//
//   Widget dotItem(bool isok) {
//     return Container(
//         margin: EdgeInsets.symmetric(horizontal: 5.w),
//         width: 14.w,
//         height: 14.w,
//         decoration: BoxDecoration(
//             borderRadius: BorderRadius.all(Radius.circular(7.w)),
//             color: isok ? Colors.white : Colors.white.withOpacity(0.5)));
//   }
//
// }
